.\"
.\" $Id: nemesis-igmp.1,v 1.1.1.1 2003/10/31 21:29:36 jnathan Exp $
.\"
.\" THE NEMESIS PROJECT
.\" Copyright (C) 1999, 2000 Mark Grimes <mark@stateful.net>
.\" Copyright (C) 2001 - 2003 Jeff Nathan <jeff@snort.org>
.\"
.TH NEMESIS-IGMP 1 "16 May 2003" 
.SH NAME
nemesis-igmp \- IGMP Protocol (The Nemesis Project)
.SH SYNOPSIS
.B nemesis-igmp [-vZ?] [-c
.I IGMP-code
.B ] [-d
.I Ethernet-device
.B ] [-D
.I destination-IP-address
.B ] [-F
.I fragmentation-options
.B ] [-H
.I source-MAC-address
.B ] [-i
.I IGMP-group-IP-address
.B ] [-I
.I IP-ID
.B ] [-M
.I destination-MAC-address
.B ] [-O
.I IP-options-file
.B ] [-p
.I IGMP-type
.B ] [-P
.I payload-file
.B ] [-S
.I source-IP-address
.B ] [-t
.I IP-tos
.B ] [-T
.I IP-TTL
.B ]
.SH DESCRIPTION
.B The Nemesis Project
is designed to be a command line-based, portable human IP stack for UNIX-like 
and Windows systems.  The suite is broken down by protocol, and should allow 
for useful scripting of injected packets from simple shell scripts.
.PP
.B nemesis-igmp
provides an interface to craft and inject IGMP packets allowing the user to
specify any portion of an IGMP packet as well as lower-level IP packet
information.
.SH IGMP Options
.IP "-c IGMP-code (unused field)"
Specify the
.I IGMP-code
or the value for the one-byte field following the IGMP type field.  This value
is normally unused.
.IP "-i IGMP-group-IP-address"
Specify the
.I IGMP-group-IP-address
within the IGMP header.
.IP "-p IGMP-type"
Specify the
.I IGMP-type
within the IGMP header.  Valid IGMP-type values:

.in +.51
.nf
17 (IGMP membership query)
18 (IGMP V1 membership report)
22 (IGMP V2 membership report)
23 (IGMP leave group)
.fi
.in -.51

Only one type may be specified at a time.
.IP "-P payload-file"
This will case nemesis-igmp to use the specified
.I payload-file
as the payload when injecting IGMP packets.  For packets injected using the
raw interface (where -d is not used), the maximum payload size is
65467 bytes.  For packets injected using the link layer interface
(where -d IS used), the maximum payload size is 1432 bytes.  Payloads can also
be read from stdin by specifying '-P -' instead of a payload file.

Windows systems are limited to a maximum payload size of 1432 bytes for IGMP
packets.
.IP "-v verbose-mode"
Display the injected packet in human readable form.  Use twice to see a hexdump
of the injected packet with printable ASCII characters on the right.  Use three
times for a hexdump without decoded ASCII.
.SH IP OPTIONS
.IP "-D destination-IP-address"
Specify the
.I destination-IP-address
within the IP header.
.IP "-F fragmentation-options (-F[D],[M],[R],[offset])"
Specify the
.I fragmentation options:

.in +.51
.nf
.I -FD (don't fragment)
.I -FM (more fragments)
.I -FR (reserved flag)
.I -F <offset>
.fi
.in -.51

within the IP header.  IP fragmentation options can be specified individually 
or combined into a single argument to the -F command line switch by separating 
the options with commas (eg. '-FD,M') or spaces (eg. '-FM 223').  The IP 
fragmentation offset is a 13-bit field with valid values from 0 to 8189.  
Don't fragment (DF), more fragments (MF) and the reserved flag (RESERVED or RB) 
are 1-bit fields.

NOTE: Under normal conditions, the reserved flag is unset.
.IP "-I IP-ID"
Specify the
.I IP-ID
within the IP header.
.IP "-O IP-options-file"
This will cause nemesis-igmp to use the specified
.I IP-options-file
as the options when building the IP header for the injected packet.  IP 
options can be up to 40 bytes in length.  The IP options file must be created
manually based upon the desired options.  IP options can also be read from 
stdin by specifying '-O -' instead of an IP-options-file.
.IP "-S source-IP-address"
Specify the
.I source-IP-address
within the IP header.
.IP "-t IP-TOS"
Specify the
.I IP-type-of-service (TOS)
within the IP header.  Valid type of service values:

.in +.51
.nf
2  (Minimize monetary cost)
4  (Maximize reliability)
8  (Maximize throughput)
24 (Minimize delay)
.fi
.in -.51

NOTE: Under normal conditions, only one type of service is set within a 
packet.  To specify multiple types, specify the sum of the desired values as
the type of service.
.IP "-T IP-TTL"
.I IP-time-to-live (TTL)
within the IP header.
.SH DATA LINK OPTIONS
.IP "-d Ethernet-device"
Specify the name (for UNIX-like systems) or the number (for Windows systems) 
of the
.I Ethernet-device
to use (eg. fxp0, eth0, hme0, 1).
.IP "-H source-MAC-address"
Specify the
.I source-MAC-address
(XX:XX:XX:XX:XX:XX).
.IP "-M destination-MAC-address"
Specify the
.I destintion-MAC-address
(XX:XX:XX:XX:XX:XX).
.IP "-Z list-network-interfaces"
Lists the available network interfaces by number for use in link-layer 
injection.

NOTE: This feature is only relevant to Windows systems.
.SH DIAGNOSTICS
Nemesis-igmp returns 0 on a successful exit, 1 if it exits on an error.
.SH BUGS
Send concise and clearly written bug reports to jeff@snort.org
.SH "AUTHOR"
Jeff Nathan <jeff@snort.org>

Originally   developed  by  Mark  Grimes  <mark@stateful.net>
.SH "SEE ALSO"
.BR "nemesis-arp(1), nemesis-dns(1), nemesis-ethernet(1), nemesis-icmp(1), "
.BR "nemesis-ip(1), nemesis-ospf(1), nemesis-rip(1), nemesis-tcp(1), "
.BR "nemesis-udp(1)"
